草庐IT

c++ - 在 Visual Studio 中调用 std::swap 时的 std::bad_function_call

全部标签

ruby - ruby 是否提供显示层次结构调用的方法?

就这些了,我想看看继承固定类的类有哪些。Ruby中有这样的方法吗?Aptana提供了一个选项来显示这一点,但是有什么方法吗?谢谢 最佳答案 你是要查看一个类的所有祖先,还是后代?对于祖先,使用:Class.ancestors然而,对于后代,没有可比的“开箱即用”的方法。您可以使用ObjectSpace,如下所示,但它很慢并且可能无法跨Ruby实现移植:ObjectSpace.each_object(Class)do|klass|pklassifklass编辑:也可以使用Class#inherited钩子(Hook)跟踪子类化。但是,

ruby - 从 Ruby 中的类方法调用私有(private)实例方法

我可以创建一个可以被类方法调用的私有(private)实例方法吗?classFoodefinitialize(n)@n=nendprivate#orprotected?defplus(n)@n+=nendendclassFoodefFoo.bar(my_instance,n)my_instance.plus(n)endenda=Foo.new(5)a.plus(3)#Thisshouldnotbeallowed,butFoo.bar(a,3)#Iwanttoallowthis如果这是一个非常初级的问题,我深表歉意,但我无法通过Google找到解决方案。 最佳

ruby - 方法调用中是否有内存约定?

我想避免在方法调用中重新计算一个值。到目前为止,我一直在这样做:defsome_method@some_method||=begin#lot'sofcodeendend但它最终变得非常丑陋。在一些代码中,我看到了如下内容:defsome_method@some_method||=some_method!endprivatedefsome_method!#lot'sofcodeend我不喜欢最后的爆炸(!),所以我想到了这个:defsome_method@some_method||=_some_methodendprivatedef_some_method#lot'sofcodeend在

ruby - Mac OS X 10.6.8 手动编译 Ruby 时的 GEM 在哪里?

我在SnowLeopard上手动构建了Ruby1.9.2。现在我找不到我的旧GEM文件了。我猜他们现在正走在不同的道路上。所以我有三个问题:geminstallsinatra放置sinatragem的“旧”gem路径是什么?我手动构建Ruby时设置的"new"gem路径是什么?如何更改它以便Ruby再次找到我的gem? 最佳答案 在命令提示符处键入gemenv(使用旧的Ruby安装的gem命令)会给出类似于以下内容的内容:>RubyGemsEnvironment:>-RUBYGEMSVERSION:1.3.6>-RUBYVERSIO

ruby - 为什么在 `.each` 之后调用惰性枚举时 `.select` 返回 nil?

我有一段代码是这样的:sent_messages=messages.lazy.reject{|m|message_is_spam?(m)}.each{|m|send_message(m)}#Dosomethingwithsent_messages...某些上下文:如果消息的收件人在过去5分钟内收到消息,则message_is_spam?方法返回true。当messages包含发给同一收件人的多封邮件时,只有在发送第一封邮件后,后一封邮件才会被视为垃圾邮件。为了确保后一条消息被视为垃圾邮件,我懒惰地拒绝垃圾邮件并发送它们。我希望.each返回一个包含所有项目的数组,但我得到的却是nil。

ruby - 了解 Ruby 方法#call

deftest"HelloWorld"endpmethod(:test).call#"HelloWorld"pmethod("test").call#"HelloWorld"我的问题是:当我们将符号传递给call方法时会发生什么?ruby会把symbol转成String然后执行吗?如果是这样,那么它的目的是什么?如果不是,那么实际发生了什么?你能详细说明一下吗?对不起,如果我没说清楚。 最佳答案 当您在任何显式类或模块定义之外执行deftest...时,您实际上处于Object类上下文中,因此test现在是一个实例方法对象在irb.

ruby-on-rails - 如何从另一个辅助方法中调用 Rails 辅助方法?

我正在编写一个需要调用另一个生成html的帮助程序的帮助程序。我该怎么做? 最佳答案 尝试:包括另一个助手 关于ruby-on-rails-如何从另一个辅助方法中调用Rails辅助方法?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3437098/

ruby - 在类中调用类方法

我意识到这可能是一个天真的问题,但我仍然无法弄清楚如何在Ruby类中从另一个方法调用一个方法。即在Ruby中是否可以执行以下操作:classAdefmet1enddefmet2met1#calltopreviouslydefinedmethod1endend谢谢,马币 最佳答案 那些不是类方法,它们是实例方法。您可以在示例中使用类的实例从met2调用met1而不会出现问题:classAdefmet1puts"Inmet1"enddefmet2met1endendvar1=A.newvar1.met2下面是使用类方法的等效方法,您通过

Ruby - 调用方法将数组的值作为每个参数传递

我目前被困在这个问题上。我在我制作的类(class)中加入了method_missing函数。当调用一个不存在的函数时,我想调用另一个我知道存在的函数,将args数组作为所有参数传递给第二个函数。有谁知道这样做的方法吗?例如,我想做这样的事情:classBlahdefvalid_method(p1,p2,p3,opt=false)puts"p1:#{p1},p2:#{p2},p3:#{p3},opt:#{opt.inspect}"enddefmethod_missing(methodname,*args)ifmethodname.to_s=~/_with_opt$/real_metho

ruby - 私有(private)方法调用错误

写了一个方法;当我尝试运行它时,出现错误:NoMethodError:privatemethod‘subtotal’calledfor39.99:Floatattoplevelingrades.rbatline9Programexitedwithcode#1after0.04seconds.代码如下:defsubtotal(qty=1)returnnilifself.to_f 最佳答案 当你在任何类之外声明一个方法时,它是一个私有(private)方法,这意味着它不能被其他对象调用。您应该打开您希望该方法进入的类,然后将方法定义放在